package com.mg.mgchat.service;


import okhttp3.*;
import org.json.JSONObject;

import java.io.*;


/**
 * 需要添加依赖
 * <!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
 * <dependency>
 *     <groupId>com.squareup.okhttp3</groupId>
 *     <artifactId>okhttp</artifactId>
 *     <version>4.12.0</version>
 * </dependency>
 */

class Sample {
    public static final String API_KEY = "yo76sSrsuYFcuFmrg9Tsdz6y";
    public static final String SECRET_KEY = "UawrTmlHY6bG8T1ZNjZC6jA6X2AFgXbA";

    static final OkHttpClient HTTP_CLIENT = new OkHttpClient().newBuilder().build();

    public static void main(String []args) throws IOException{
        MediaType mediaType = MediaType.parse("application/json");
        //   {
        //    "role": "assistant",
        //    "content": "这是一个测试信息。请问有什么我可以帮助您的吗？"
        //  }, it is string parameter
        //String  s={"messages":[{"role":"user","content":"test"}]}

        String json = "{\"messages\":[{\"role\":\"user\",\"content\":\"辽沈战役类似的电影有哪些\"},{\"role\":\"assistant\",\"content\":\"与辽沈战役相关的电影有很多，以下是一些类似的电影：\\n\\n1. 《大决战》：这是一部非常知名的战争电影，描述了辽沈战役的全过程，再现了中国共产党的英勇奋斗和伟大胜利。\\n2. 《辽沈战役之鹰击长空》：这部电影描绘了空军在辽沈战役中的重要作用，展现了空军的英勇无畏和战争中的艰苦历程。\\n3. 《风雨辽沈》：这部电影展现了辽沈战役期间的复杂局势和人物关系，描绘了一幅生动的历史画卷。\\n4. 《决战辽沈》：这部电影聚焦于辽沈战役的重要战役和事件，再现了战争中的关键时刻和英勇事迹。\\n5. 《中国蓝军大决战》：这部电影以辽沈战役为背景，展现了人民解放军的战斗精神和英勇无畏。\\n\\n除了以上电影，还有一些其他战争题材的电影，如《建党伟业》、《辛亥革命》等，虽然不直接描述辽沈战役，但也涉及到相关的历史事件和人物。\\n\\n以上内容仅供参考，如需更多关于辽沈战役的电影信息，可以在各大影视网站或App上查询。\"},{\"role\":\"user\",\"content\":\"推荐一部电影\"}]}";

        RequestBody body = RequestBody.create(mediaType, json);

        //RequestBody body = RequestBody.create(mediaType, "{\"messages\":[{\"role\":\"user\",\"content\":\"辽沈战役类似的电影有哪些\"}\\,{\"role\":\"assistant\",\"content\":\"与辽沈战役相关的电影有很多，以下是一些类似的电影：\\n\\n1. 《大决战》：这是一部非常知名的战争电影，描述了辽沈战役的全过程，再现了中国共产党的英勇奋斗和伟大胜利。\\n2. 《辽沈战役之鹰击长空》：这部电影描绘了空军在辽沈战役中的重要作用，展现了空军的英勇无畏和战争中的艰苦历程。\\n3. 《风雨辽沈》：这部电影展现了辽沈战役期间的复杂局势和人物关系，描绘了一幅生动的历史画卷。\\n4. 《决战辽沈》：这部电影聚焦于辽沈战役的重要战役和事件，再现了战争中的关键时刻和英勇事迹。\\n5. 《中国蓝军大决战》：这部电影以辽沈战役为背景，展现了人民解放军的战斗精神和英勇无畏。\\n\\n除了以上电影，还有一些其他战争题材的电影，如《建党伟业》、《辛亥革命》等，虽然不直接描述辽沈战役，但也涉及到相关的历史事件和人物。\\n\\n以上内容仅供参考，如需更多关于辽沈战役的电影信息，可以在各大影视网站或App上查询。\"}\\,{\"role\":\"user\",\"content\":\"推荐一部电影\"}]}");
        Request request = new Request.Builder()
                .url("https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ernie-speed-128k?access_token=" + getAccessToken())
                .method("POST", body)
                .addHeader("Content-Type", "application/json")
                .build();
        Response response = HTTP_CLIENT.newCall(request).execute();
        System.out.println(response.body().string());

    }


    /**
     * 从用户的AK，SK生成鉴权签名（Access Token）
     *
     * @return 鉴权签名（Access Token）
     * @throws IOException IO异常
     */
    static String getAccessToken() throws IOException {
        MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
        RequestBody body = RequestBody.create(mediaType, "grant_type=client_credentials&client_id=" + API_KEY
                + "&client_secret=" + SECRET_KEY);
        Request request = new Request.Builder()
                .url("https://aip.baidubce.com/oauth/2.0/token")
                .method("POST", body)
                .addHeader("Content-Type", "application/x-www-form-urlencoded")
                .build();
        Response response = HTTP_CLIENT.newCall(request).execute();
        return new JSONObject(response.body().string()).getString("access_token");
    }

}